package com.zdp.middleware.hystrix.value;

import com.zdp.middleware.hystrix.annotation.DoHystrix;
import org.aspectj.lang.ProceedingJoinPoint;

import java.lang.reflect.Method;

/**
 * @author ZhengDp
 * @Date 2023/5/27 11:42
 */
public interface IValveService {

    /**
     *
     * @param jp 切面的参数
     * @param method 方法对象
     * @param doHystrix 熔断注解对象
     * @param args 方法入参
     * @return 执行结果
     * @throws Throwable
     */
    Object access(ProceedingJoinPoint jp, Method method, DoHystrix doHystrix, Object[] args) throws Throwable;

}
